class Charts {
  static const Map<String,Object> _consonantCombinationDict = {
    '爆破音': [['p', 't', 'k'], ['b', 'd', 'ɡ']],
    '摩擦音': [['f', 's', 'ʃ', 'θ', 'h'], ['v', 'z', 'ʒ', 'ð', 'r']],
    '破擦音': [['tʃ', 'tr', 'ts'], ['dʒ', 'dr', 'dz']],
    '鼻音': ['m', 'n', 'ŋ'],
    '舌侧音': ['l'],
    '半元音': ['j', 'w']
  };

  static const List<String> _subtype = ['清辅音', '浊辅音'];

  static const Map<String,Object> _vowelCombinationDict = {
  '单元音': {
    '前元音': ['iː', 'ɪ', 'e', 'æ'],
    '中元音': ['ɜː', 'ə', 'ʌ'],
    '后元音': ['uː', 'ʊ', 'ɔː', 'ɒ', 'ɑː']
  },
  '双元音': {
    '开合双元音': ['eɪ', 'aɪ', 'ɔɪ', 'aʊ', 'əʊ'],
    '集中双元音': ['ɪə', 'eə', 'ʊə']
    }
  };

  static const List<String> _phonogramList = ['iː', 'ɪ', 'e', 'æ', 'ɜː', 'ə', 'ʌ', 'uː',
  'ʊ', 'ɔː', 'ɒ', 'ɑː', 'eɪ', 'aɪ', 'ɔɪ', 'aʊ', 'əʊ',
  'ɪə', 'eə', 'ʊə', 'p', 't', 'k', 'b', 'd', 'ɡ', 'f', 's',
  'ʃ', 'θ', 'h', 'v', 'z', 'ʒ', 'ð', 'r', 'tʃ', 'tr', 'ts',
  'dʒ', 'dr', 'dz', 'm', 'n', 'ŋ', 'l', 'j', 'w'];

  static const List<String> _phonogramListSoundmap = ['i-sound2', 'i-sound', 'e-sound', 'an-sound',
  'er-sound', 'e^-sound', '^-sound', 'u-sound2', 'u-sound',
  'o-sound2', 'o-sound', 'a-sound2', 'ei', 'ai', 'oi', 'ao',
  'eu', 'ir', 'er', 'uer', 'p', 't', 'k', 'b', 'd', 'g',
  'f', 's', 'ss', 'si', 'h', 'v', 'z', 'n3', 'qq', 'r',
  'tss', 'tr', 'ts', 'd3', 'dr', 'dz', 'm', 'n', 'ng', 'l',
  'j', 'w'];

  static List<String> getVowels () {
    return Charts._phonogramList.getRange(0, 20).toList();
  }

  static List<String> getConsonant () {
    return Charts._phonogramList.getRange(20, 48).toList();
  }

  static String getImg (String  char) {
    int index = Charts._phonogramList.indexOf(char);
    String imageName = Charts._phonogramListSoundmap[index];
    return 'new-' + imageName + '.png';
  }

  static String getMP3 (String char) {
    int index = Charts._phonogramList.indexOf(char);
    String charMp3Name = Charts._phonogramListSoundmap[index];
    return charMp3Name + '.mp3';
  }
}
